/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package apteka;

import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import apteka.tables.User;
import org.springframework.beans.factory.annotation.Autowired;
/**
 *
 * @author Marek
 */

@Component
public class UserRegisterValidator {

    @Autowired
        UserManager user_man;

    public boolean supports(Class<?> klasa) {
        return User.class.isAssignableFrom(klasa);
    }

   public void validate(Object target, Errors errors) {
       User user = (User)target;
       //nazwa użytkownika
       if (user.getUsername().isEmpty()) errors.rejectValue("username", "Wrong.user.username", "Nieprawidłowa nazwa użytkownika.");
       if (user.getUsername().equals("admin")) errors.rejectValue("username", "Wrong.user.username", "Nieprawidłowa nazwa użytkownika.");

       if (user_man.checkUsername(user.getUsername())) errors.rejectValue("username", "Wrong.user.username", "Nieprawidłowa nazwa użytkownika.");
       if (user.getUsername().contains(" ")) errors.rejectValue("username", "Wrong.user.username", "Nieprawidłowa nazwa użytkownika.");
       //hasło
       if (user.getPassword().isEmpty()) errors.rejectValue("password", "Wrong.user.password", "Nieprawidłowe hasło.");
       if (user.getPassword().contains(" ")) errors.rejectValue("password", "Wrong.user.password", "Nieprawidłowe hasło.");
       if (user.getPassword().length()<5) errors.rejectValue("password", "Wrong.user.password", "Hasło za krótkie! Minimum to 5 znaków.");
       //mail
       if (user.getEmail().isEmpty()) errors.rejectValue("email", "Wrong.user.email", "Nieprawidłowy adres email.");
       if (!user.getEmail().contains("@") || !user.getEmail().contains(".")) errors.rejectValue("email", "Wrong.user.email", "Nieprawidłowy adres email.");
       if (user.getEmail().contains(" ")) errors.rejectValue("email", "Wrong.user.email", "Nieprawidłowy adres email.");
       //reszta
       if (user.getAddress().getName().isEmpty()) errors.rejectValue("address.name", "Wrong.user.address.name", "Wprowadź imię.");
       if (user.getAddress().getSurname().isEmpty()) errors.rejectValue("address.surname", "Wrong.user.address.surname", "Wprowadź nazwisko.");
       if (user.getAddress().getStreet().isEmpty()) errors.rejectValue("address.street", "Wrong.user.address.street", "Wprowadź ulicę.");
       if (user.getAddress().getStreetNumber().isEmpty()) errors.rejectValue("address.streetNumber", "Wrong.user.address.streetNumber", "Wprowadź numer ulicy.");
       if (user.getAddress().getTown().isEmpty()) errors.rejectValue("address.town", "Wrong.user.address.town", "Wprowadź miejscowość.");
       if (user.getAddress().getPostal().isEmpty()) errors.rejectValue("address.postal", "Wrong.user.address.postal", "Wprowadź kod pocztowy.");

       if (user.getAddress().getPostal().length()!=6) errors.rejectValue("address.postal", "WrongUsername.user.address.postal", "Nieprawidłowy kod pocztowy.");
   }

}
